package org.TCC_NOVO.client;

import org.TCC_NOVO.client.modelo.OcorrenciaTarefa;
import org.TCC_NOVO.client.modelo.OcorrenciaUnidade;
import org.TCC_NOVO.client.modelo.Papel;
import org.TCC_NOVO.client.modelo.Projeto;
import org.TCC_NOVO.client.modelo.Roteiro;
import org.TCC_NOVO.client.modelo.TipoAvaliacao;
import org.TCC_NOVO.client.modelo.Unidade;
import org.TCC_NOVO.client.modelo.Usuario;
import org.TCC_NOVO.client.modelo.Objetivo;
import org.TCC_NOVO.client.modelo.Atividade_Roteiro;
import com.google.gwt.user.client.rpc.AsyncCallback;
import java.util.ArrayList;
import java.util.List;
import org.TCC_NOVO.client.modelo.Slide;

public interface GWTServiceAsync {
    public void Conexao(String odbc, AsyncCallback<Boolean> callback);

    public void efetuaLogin(String nick, String senha, AsyncCallback<String> callback);
    public void salvarUsuario(Usuario usuario, AsyncCallback callback);
    public void excluirUsuario(String nick, AsyncCallback callback);
    public void retornarDadosUsuarios(String nomePapel, AsyncCallback<List<Usuario>> callback);

    public void retornarDadosPapeis(AsyncCallback<List<Papel>> callback);

    public void IncluirRegistro(String Query, AsyncCallback<Integer> callback);
    public void ExcluirRegistro(String Query, AsyncCallback callback);
    public void EditarRegistro(String Query, AsyncCallback callback);
    public void RetornarDadosProjeto(String Query, AsyncCallback<ArrayList<Projeto>> callback);
    public void RetornarDadosMatriz(String Query, AsyncCallback<ArrayList<Unidade>> callback);
    public void RetornarDadosUnidade(String Query, AsyncCallback<ArrayList<Unidade>> callback);
    public void GravarDadosUnidade(Unidade unid, AsyncCallback callback);
    public void AlterarDadosUnidade(Unidade unid, AsyncCallback callback);
    public void ExcluirDadosUnidade(Unidade unid, AsyncCallback callback);
    public void RetornarDadosObjetivos(String Query, AsyncCallback<ArrayList<Objetivo>> callback);
    public void RetornarDadosUnidadeConcluidas(String Query, AsyncCallback<ArrayList<Unidade>> callback);
    public void RetornarDadosOcoUnidade(String Query, AsyncCallback<ArrayList<OcorrenciaUnidade>> callback);
    public void RetornarDadosTipoAvaliacao(String Query, AsyncCallback<ArrayList<TipoAvaliacao>> callback);
    public void RetornarDadosRoteiro(int codUnidade, AsyncCallback<Roteiro> callback);
    public void GravarDadosRoteiro(Roteiro rote, AsyncCallback callback);
    public void AlterarDadosRoteiro(Roteiro rote, AsyncCallback callback);
    public void ItensRemovidosRoteiro(ArrayList<Atividade_Roteiro> lstAtividadeRoteiro, ArrayList<Slide> lstSlides, AsyncCallback callback);
    public void RetornarDadosTarefa(String Query, AsyncCallback<ArrayList<Atividade_Roteiro>> callback);
    public void RetornarDadosOcoTarefa(String Query, AsyncCallback<ArrayList<OcorrenciaTarefa>> callback);
    public void RetornarDadosUsuarioTarefas(String Query, AsyncCallback<ArrayList<Usuario>> callback);
    public void GerarUnidadeSCORM(String arquivo, String nomeProj, String nomeUnid, String nomeArqRaiz, AsyncCallback<Boolean> callback);
    public void adicionarTemplateSlide(Slide template, AsyncCallback callback);
    public void removerTemplateSlide(Slide template, AsyncCallback<Boolean> callback);
    public void getListaTemplateSlide(AsyncCallback<ArrayList<Slide>> callback);
}
